\chapter{Mejora Iterativa de Soluciones}

\section{Definición de funcionalidades}

\begin{enumerate}
\item Implementar los algoritmos:
  \begin{enumerate}
  \item Ascenso de Colinas.
  \item Enfriamiento Simulado.
  \end{enumerate}

\item Probar los algoritmos con las tres entradas establecidas como fácil, compleja y muy compleja.

\item En el algoritmo del enfriamiento simulado ver el efecto de la variación de los valores de los parámetros T0 (temperatura Inicial) g(T) (función que disminuye la T) y f(T) (función que controla el número de iteraciones con una T constante).
\end{enumerate}

\newpage

\section{Código Fuente}
\lstinputlisting[title=Ascenso de Colinas,language=Java]{src/AscensoColinas.java}
\lstinputlisting[title=Temple Simulado,language=Java]{src/TempleSimulado.java}

\newpage

\section{Resultados Obtenidos}
Se han realizado varios ejemplos con complejidades distintas. Para una entrada sencilla hemos obtenido una solución(15x15), sin embargo, para entradas complejas(50x50) y muy complejas(100x100) no se ha obtenido solución alguna. El ejemplo de complejidad sencilla se ha realizado con este código.
\lstinputlisting[title=Main,language=Java]{src/MainMejoradaIterativa.java}
\newpage
Y se han obtenido estos resultados.
\lstinputlisting[title=Resultados]{src/pruebas/salidaMejoradaIterativa}
\newpage
Al variar los parámetros de configuración se ha obtenido una solución distinta, sin embargo la variación de los parámetros nos supone siempre una mejora salvo que se encuentre el camino óptimo entre el inicio y el fin, para lo cual habría que modificar toda la solución.
Esto es debido a que la eliminación de partes del camino es aleatoria, y al restaurar la solución se generan caminos distintos cada vez. Para encontrar el camino óptimo entre el inicio y el fin bastaría con dar un f(T) muy alto, de modo que acabe por eliminar todo el camino y lo reconstruya a la perfección.


\begin{lstlisting}
Valoracion: 98.0
Tiempo: 0.0
No maximo de nodos: 0.0
Coste Solucion: 98.0
2 0 2 0 2 0 2 0 3 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 3 1 2 0 2 0 1 
\end{lstlisting}
